.. _cmsOverrideSpeedSet: cmsOverrideSpeedSet ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmsOverrideSpeedSet ([in] VT_I4 BoardId, [in] VT_I4 Axis) DESCRIPTION ````````````` - 이 함수는 단축 모션이 진행되고 있는 중에 속도를 오버라이딩하고자할 때 사용하는 함수입니다. 속도를 오버라이딩하기 위해서는 먼저 cmsCfgSetSpeedPattern() 속도 패턴 설정 함수를 통하여 변경하고자 하는 속도 또는 가속도값을 설정하고나서 이 함수를 수행해야합니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardId: 사용자가 설정한 디바이스(보드) ID. ▶ Axis : 축(채널) 번호. 축번호는 상수값으로 0번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다. RETURN VALUE ````````````` +------------+-----------+ | Value | Meaning | +============+===========+ | 음수 | 수행 실패 | +------------+-----------+ | ERR_NONE | 수행 성공 | +------------+-----------+ REFERENCE ``````````````` - 직선, 원호, 헬리컬 보간작업을 수행하는 경우에는 속도 오버라이딩을 사용할 수 없습니다. EXAMPLE ``````````` - 본 예제는 cmsOverrideSpeedSet()함수를 사용하여 속도를 오버라이딩하는 것을 예로 보여주는 코드입니다. 본 예제는 “HIGH” 와 “LOW” 로 이름지어진 두 개의 버튼이 있다고 가정하고 “HIGH” 버튼이 눌리면 X1축의 속도를 20000으로 설정하고 “LOW” 버튼이 눌리면 속도를 10000으로 설정하는 예입니다. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #define DEV0 0 #include "ComiSSCNET3_SDK.h" #include "ComiSSCNET3_SDK_Def.h" #define V_LOW 10000 // 저속모드 속도 #define V_HIGH 20000 // 고속모드 속도 /*************************************************************** * OnProgramInitial : 이 함수는 가상의 함수로서 프로그램 초기화 루틴이 * 적용되는 부분을 의미합니다. ***************************************************************/ void OnProgramInitial() { long m_nNumDevices; long m_DeviceList[16]; long m_nNumAxes; cmsLoadDll(); if(cmsGnLoadDevice(&m_nNumDevices, m_DeviceList, &m_nNumAxes) != ERR_NONE) { //Handle은 사용자가 생성한 폼의 핸들 값입니다. // 에러메시지 출력 return; } } /************************************************************** * OnStart() : 이 함수는 가상의 함수로서 X축에 대하여 V-MOVE 모션을 시작합니다. **************************************************************/ void OnStart() { long nIsDone; // 해당축이 작업중이면 정지(停止)하고 다시 시작 // cmsSxIsDone(DEV0, 0, &nIsDone); if(nIsDone != cmsTRUE) cmsSxStopEmg(DEV0, 0); // 속도설정 => 시작은 LOW 속도로 시작 // cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_LOW, 50000, 50000,0,0); // V-Move start // if(cmsSxVMoveStart(DEV0, 0, cmsDIR_P)){ // 에러메시지 출력 return; } } /************************************************************** * OnHighButtonClick() : “HIGH” 버튼 콜백함수 (가상함수) * “HIGH”버튼이 클릭되면 속도를 V_HIGH 속도로 오버라이드한다. **************************************************************/ void OnHighButtonClick() { // V_HIGH 속도로 오버라이딩 // cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_HIGH, 50000, 50000,0,0); if(cmsOverrideSpeedSet (DEV0, 0) != ERR_NONE){ // 에러메시지 출력 return; } } /************************************************************** * OnLowButtonClick() : “LOW” 버튼 콜백함수 (가상함수) * “LOW”버튼이 클릭되면 속도를 V_LOW 속도로 오버라이드한다. **************************************************************/ void OnLowButtonClick() { // V_LOW 속도로 오버라이딩 // cmsCfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, V_LOW, 50000, 50000,0,0); if(cmsOverrideSpeedSet (DEV0, 0) != ERR_NONE){ // 에러메시지 출력 return; } } /************************************************************** * OnStop() : “Stop”명령시에 호출되는 가상의 함수 **************************************************************/ void OnStop() { } cmsSxStopEmg(DEV0, 0); ------------------------------------------------------------------------------------- Visual Basic Const DEV0 = 0 '/************************************************************** '* OnStart() : 이 함수는 가상의 함수로서 X축에 대하여 V-MOVE 모션을 ‘*시작합니다. '**************************************************************/ Private Sub OnStart() Dim nIsDone As Long '해당축이 작업중이면 정지(停止)하고 다시 시작 Call SxIsDone(DEV0, 0, nIsDone) If (nIsDone <> cmsTRUE) Then SxStopEmg (DEV0, 0) End If '시작은 LOW 속도로 시작 Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 10000, 50000, 50000) If (SxVMoveStart(DEV0, 0, cmsDIR_P)) Then // 에러메시지 출력 End If End Sub '/************************************************************** '* OnHighButtonClick() : "HIGH" 버튼 콜백함수 (가상함수) '* "HIGH"버튼이 클릭되면 속도를 V_HIGH 속도로 오버라이드한다. '**************************************************************/ Private Sub OnHighButtonClick() 'V_HIGH 속도로 오버라이딩 Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 20000, 50000, 50000,0,0) If (OverrideSpeedSet(DEV0, 0) <> ERR_NONE) Then // 에러메시지 출력 End If End Sub '/************************************************************** '* OnLowButtonClick() : "LOW" 버튼 콜백함수 (가상함수) '* "LOW"버튼이 클릭되면 속도를 V_LOW 속도로 오버라이드한다. '**************************************************************/ Private Sub OnLowButtonClick() 'V_LOW 속도로 오버라이딩 Call CfgSetSpeedPattern(DEV0, 0, cmsSMODE_S, 10000, 50000, 50000,0,0) If (OverrideSpeedSet(DEV0, 0) <> ERR_NONE) Then // 에러메시지 출력 End Sub `/************************************************************** `* OnStop() : “Stop”명령시에 호출되는 가상의 함수 `**************************************************************/ Private Sub OnStop() Call SxStopEmg(DEV0, 0) End Sub -------------------------------------------------------------------------------------